<?php
/**
 * 抽象工厂模式
 * 单例模式
 * 注册器模式
 */
namespace phpless\core;
class Factory
{
    public static $classMap=array();
    // 自动实例化类
    static public function getInstance($class,$construct=null)
    {
        if(isset(self::$classMap[$class])){
            return self::$classMap[$class];
        }else{
            $file_temp=str_replace('\\', '/', $class);
            $file=APP.'/'.$file_temp.'.class.php';
            if(is_file($file)){
                $instance=new $class($construct);
                self::$classMap[$class]=$instance;
                return $instance;
            }else{
                throw new \Exception("找不到类{$class}");
                return false;
            }
        }
    }
}
